인게임 저장 및 종료 버튼 병합
===========================

① 이번 예제에서 할 작업

게임 화면에 64x64 전원 버튼을 추가합니다.
버튼을 누르면 PausePanel 문맥에서 저장 및 종료를 실행합니다.


② 수정할 파일

[수정할 기존 파일]
data/global/ui/layouts/hudpanelhd.json

[새로 복사할 파일]
data/global/ui/layouts/quickexithudhd.json
data/global/ui/layouts/quickexitactionhd.json

[복사할 에셋]
data/hd/global/ui/panel/quick_exit/power_exit.sprite
data/hd/global/ui/panel/quick_exit/power_exit.lowend.sprite


③ 찾아야 할 위치

hudpanelhd.json의 최상위 "children" 배열 끝부분을 찾습니다.

예:

"children": [
    ...
    {
        "type": "LevelUpButtonWidget",
        "name": "QuestAlert",
        ...
    }
]

기존 마지막 항목 뒤에 아래 TimerWidget을 추가합니다.


④ 실제로 삽입할 코드

{
    "type": "TimerWidget",
    "name": "OpenQuickExitHud",
    "fields": {
        "time": 0,
        "message": "PanelManager:OpenPanel:QuickExitHud"
    }
}

신규 quickexithudhd.json의 버튼 핵심 부분은 다음과 같습니다.

{
    "type": "ButtonWidget",
    "name": "InGameExitButton",
    "fields": {
        "rect": { "x": 2735, "y": 35, "width": 64, "height": 64, "scale": 1.0 },
        "filename": "PANEL\\quick_exit\\power_exit",
        "frame": 0,
        "hoveredFrame": 1,
        "pressedFrame": 2,
        "onClickMessage": "PanelManager:OpenPanel:QuickExitAction",
        "tooltipString": "저장 및 종료",
        "sound": "select",
        "focusOnMouseOver": false
    }
}

quickexitactionhd.json은 아래 Save & Exit 메시지를 PausePanel에서 실행합니다.

{
    "type": "TimerWidget",
    "name": "ExitGame",
    "fields": {
        "time": 0,
        "message": "PausePanelMessage:ExitGame"
    }
}


⑤ 삽입 후 형태

hudpanelhd.json에는 기존 HUD 항목을 그대로 둔 채 TimerWidget 하나만 추가됩니다.

"children": [
    ...기존 HUD 항목...,

    {
        "type": "TimerWidget",
        "name": "OpenQuickExitHud",
        "fields": {
            "time": 0,
            "message": "PanelManager:OpenPanel:QuickExitHud"
        }
    }
]


⑥ 적용 원리

HUD 진입 시 TimerWidget이 QuickExitHud를 열고, 전원 버튼이 QuickExitAction을 엽니다.
QuickExitAction은 실제 PausePanel 타입이므로 저장 및 종료 메시지를 정상 문맥에서 전달합니다.
QuickExitHud는 PlayerInventoryPanel 타입이므로 같은 ZIP의 "보관함 금화 호환.txt" 내용도 함께 적용해야 합니다.

버튼 위치를 바꾸려면 quickexithudhd.json의 x/y만 수정합니다.
